package top.whysu.edevice.service.manage;

import org.springframework.transaction.annotation.Transactional;
import top.whysu.edevice.dto.manage.*;
import top.whysu.edevice.dto.page.PagenationDataDTO;
import top.whysu.edevice.po.manage.ManageSecretKeyPO;

import java.math.BigDecimal;
import java.util.List;

/**
 * 秘钥管理
 */
public interface ManageSecretKeyService {

    /**
     * 新增修改秘钥
     */
    @Transactional
    BigDecimal wholeAddModify(SecretKeyAddModifyDTO addModifyDTO);

    /**
     * 查看设备列表
     *
     * @param secretKeyQueryDTO 查询参数
     * @return 分页对象
     */
    PagenationDataDTO<SecretKeyPageDTO> selectPage(SecretKeyQueryDTO secretKeyQueryDTO);

    /**
     * 删除秘钥
     */
    @Transactional
    void delete(BigDecimal id);

    /**
     * 获取当前选中节点的所属的凭证组下拥有的秘钥列表
     *
     * @param voucherTreeId 凭证组的树结构的id, 对于e_manage_tree的主键id
     * @return 秘钥列表
     */
    List<SecretKeyNameDTO> getSecretKeyListByVoucherTreeId(BigDecimal voucherTreeId);

    /**
     * 获取当前选中节点的所属的凭证组下拥有的秘钥列表
     *
     * @param voucherId 凭证组id, 对于e_manage_voucher的主键id
     * @return 秘钥列表
     */
    List<SecretKeyNameDTO> getSecretKeyListByVoucherId(BigDecimal voucherId);

}
